home *** CD-ROM | disk | FTP | other *** search
- This archive contains a vt100 emulator with KERMIT and XMODEM file
- transfer protocols. Original work by Dave Wecker, V2.7-V2.8 by Tony Sumrall.
-
- Thanks:
- -------
- To everyone who sent in code, suggestions and fixes!
-
- Releases:
- ---------
- v2.8 880117 ACS - See Release Notes.
- v2.7 870825 ACS - See Release Notes.
- v2.6 870227 DBW - bug fixes for all the stuff in v2.5
- v2.5 870214 DBW - more additions (see readme file)
- v2.4 861214 DBW - lots of fixes/additions
- v2.3 861101 DBW - minor bug fixes
- v2.2 861012 DBW - more of the same
- v2.1 860915 DBW - new features (see README)
- v2.0 860823 DBW - Major rewrite
- v1.1 860720 DBW - Switches, 80 cols, colors, bug fixes
- v1.0 860712 DBW - First version released
-
- Usage:
- ------
- Please read VT100.DOC for usage information and examples.
-
- Release Notes:
- --------------
- v2.8 880117 ACS - Info/Status window automatically deselected.
- - 1st menu item re-worked. Now the user need only choose Send,
- Receive, Kermit Get, Kermit Bye and Capture. Protocol to send or
- receive is selected via the 1st sub-menu from the 1st menu item.
- - New command: XPROTO XMODEM | XMODEMCRC | ASCII | KERMIT to select
- transfer protocol via scripts.
- - User may capture simultaneously with sending or receiving via
- a different protocol by using the Capture menu item. This item
- changes to Capturing when capture is in effect.
- - Kermit will transfer long packets (up to 1000 bytes). New cmd:
- "KMAXPACK n" sets maximum packet length to n bytes. Remember to
- increase your send and/or receive timeouts on your host!!!
- - Added insert/delete character to the recognized escape sequences.
- ESC [ n @ inserts n characters, ESC [ n P deletes n characters
- (thanks to John Wang (jwang@ATRP.MEDIA.MIT.EDU)). He suggests
- using the following termcap:
- CA|vt100|amiga|Amiga termcap:al=\E[L:AL=\E[%dL:am:bl=^G:bs:cd=\E[J:\
- :ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:co#80:cr=^M:cs=\E[%i%d;%dr:\
- :dc=\E[P:DC=\E[%dP:dl=\E[M:DL=\E[%dM:do=^J:ho=\E[H:\
- :is=\E[1;24r\E[24;1H:ic=\E[@:IC=\E[%d@:kb=^H:kd=\E[B:\
- :ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:ku=\E[A:k1=\EOP:\
- :k2=\EOQ:k3=\EOR:k4=\EOS:le=^H:li#24:mb=\E[5m:md=\E[1m:me=\E[m:\
- :mr=\E[7m:nd=\E[C:pt:rc=\E8:rf=/usr/lib/tabset/vt100:\
- :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\E7:se=\E[m:\
- :sf=^J:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:vc#16:vt#3:xn:
- - Fixed scroll regions. Now will not wrap-around out of a scroll
- region. (thanks to Tad Guy (ames!xanth.cs.odu.edu!tadguy))
- - Fixed the FileLock() problem (thanks to many!).
- - The "nagging requester" bug was a bug in *my* code (gasp!). Thanks
- to Joel Swank (joels@tekred.TEK.COM) for finding and squashing it!
- - Fixed overzealous xmodem chopping. It now strips contiguous
- strings of nulls OR Ctrl-Z (not a mixture) and will avoid writing
- anything if they were all chopped. Thanks to Wayne Davison
- (drivax!davison--I only had to modify it a little, Wayne). Also,
- when sending, it now sends a stream of nulls OR Ctrl-Zs, whichever
- is NOT the last character.
- - Removed an extraneous continue in readchar(). Thanks to someone!
- (Sorry, I lost your name and address.)
- - Now uses the default keymap. All of the old mappings have been
- retained (e.g. Ctrl-2 generates Ctrl-@, Ctrl-6 generates Ctrl-^,
- ALT acts as META key (i.e. sets the high-order bit)). Note,
- however, that your keymap may preclude the use of the ALT key if
- dead keys are defined. A future version will support specification
- of a keymap different from the system map.
- - New commands: SENDF file-spec and REC file which will send/receive
- via the default XPROTO setting. You still have XS, KR, etc.
- - New command: FONT font-name. Allows the user to specify which
- 8-point font to use. If you want to use your new whippy-font, sau
- FONT whippy-font. These must be 8-point fonts for now!
- - Saying LINES 0 will use all available lines on the screen (useful
- to you MoreRows groupies).
- - P_unit may be changed in vt100.c to specify a different unit of
- the serial.device to use (for expansion serial ports). As of this
- writing there are no expansion serial devices...this is just in
- preparation for the future. Also provided a new INIT command:
- UNIT which accomplishes the same result.
- v2.7 870825 ACS - Requester is only used for input. A new window (the
- Info/Xfer Status window) now shows what used to go there and the
- requester now comes up in this window. The window is sizable,
- draggable, closeable and front-to-backable; when re-opened it
- will appear in its last location with its last dimensions. The
- window ignores input but will become active when it's first
- displayed as well as when a requester is put up in it. To
- cancel a transfer request, first ensure that the mail VT100
- windiw is active then hit ESC in it.
- - KERMIT mode has been hardened and wildcarded files can be sent
- to a KERMIT that is *not* in server mode. E.g. you may say
- RECEIVE to your host's KERMIT then send Foo* -- all files
- starting with Foo in the current directory will be sent.
- - New command line switches -i and +i. -I says don't use an init
- file, +i file says use "file". User may also specify script
- files on the command line which will be executed in sequence.
- - New init file command SHORTCUT. See vt100.doc.
- - I've included the font code. It looks for an env variable named
- "font" (yes, lowercase) and, if found, uses that font for its
- test. If you don't like it you may wanna remove it. I was gonna
- ifdef it but I ran out of time. Remember that there's a PD set
- cmd to allow Lattice users to set env vars.
- - Nagging bug: On 2nd and subsequent uses of the requester, the
- 1st character of the last use is redisplayed. Intuition bug?
- v2.6 870227 DBW - bug fixes for all the stuff in v2.5
- - Input requestors are now self selecting (ignore comment in 2.5)
- - Added a BS<->DEL menu item and startup option (SWAP ON/OFF)
- - Renamed dopen/dnext/dclose to diropen/dirnext/dirclose for LATTICE
- - Added a CONVERT option that tells whether KERMIT should downcase
- - MAJOR CHANGE: re write the INPUT/SCRIPT commands, see VT100.DOC
- - Fixed a major problem with Set Directory causing LOCK conflicts
- - Moved the Title up 1 pixel so that it doesn't get cut off anymore
- v2.5 870214 DBW - more additions (see readme file)
- - All prompting now done through a string requester/gadget.
- NOTE: YOU MUST SELECT THE INPUT STRING OF THE REQUESTER BEFORE
- YOU CAN TYPE A RESPONSE.
- - Local echo mode added (half duplex for Carolyn)
- - BEEP command added to SCRIPT
- - New menu/init/script items:
- CLEAR SCREEN - clears the screen
- ECHO - turns on/off half duplex mode
- WRAP - turns on/off autowrap on long lines
- NUMKEY - turns on/off numeric keypad mode
- APPCUR - turns on/off application cursor mode
- - Rewrote toasc() to use qualifier field (no more getting the
- keyboard "stuck")
- - Fixed locking of directories (should now run under workbench ok)
- - Cleaned up VT100.H to really check includes on compile
- - Setting font explicitly to TOPAZ 8 (no more dumb assumptions)
-
- v2.4 861214 DBW - lots of fixes/additions
- - Beep should now work under Lattice
- - CreatePort now passes longs (as it should always have)
- - Nested comments in KERMIT.C removed
- - Beep volume of 0 (DisplayBeep) now works
- - snum[] declaration in KERMIT.C fixed
- - multi_xfer is now void and return fixed (in kermit)
- - "." can no longer get "stuck" as the break key
-
- - RIGHT-AMIGA-keys have been added for most menu items
- - The ALT key is now an EIGHTth bit shifter
- - Control-@, Control-2, Control-space send the NULL character
- - Control-6 now sends Control-^
- - Control-- and Control-? now sends Control-_
- - Cursor application mode (<esc>[?1h and <esc>[?1l) now work
- - XMODEM now masks the eighth bit if parity is other than NONE
-
- v2.3 861101 DBW - minor bug fixes:
- - added p_wbcolors to allow workbench colors on custom screen
- (In the init file you can specify WBCOLORS to be NO (use color
- definitions in INIT FILE or VT100.H) or YES (use WORKBENCH
- colors for everything)).
- - "$" now sends a kermit-bye (like it says in VT100.DOC).
- - made window/screen heights more reasonable
- - Added ANSI insert line and delete line (<csi><num>L and
- <csi><num>M) to speed up various editors (like emacs).
- NOTE: This is NOT a VT100 sequence (new extension).
- - ctrl-space now also sends a null (along with ^@ and ^`)
- - RAWKEY fixed in WINDOW.C
- - p_wrap fixed in WINDOW.C
- - removed WRDMAX from VT100.H
- - fixed exit with no params in SCRIPT.C
- - fixed parity comparisons in KERMIT.C
- - init file [n+1] changed to [nplus1] to make Lattice happy.
- - cursoron(), cursoroff() changed to one routine cursorflip().
- - long lines shortened to less than 80 characters (for gateways).
- - blanks following exit (or comments) now work in scripts.
-
- v2.2 861012 DBW - more of the same:
- - The INIT file "exit" can now chain to a script
- - The SCRIPT command "exit" can now chain to another script
- - Hangup menu item now works.
- - Autowrap can now be set from VT100.H, VT100.INIT (<esc>[?7h l)
- - Control-G is now handled with an audible beep
- - Script now used "^chr" to send control characters
- - The graphics "box" character (a) was added
- - Control-@ and Control-` now send the NULL character
- - Alternate color for BOLD has been re-instated by popular demand
- - Menus have been cleaned up.
- - Lattice compilation cleaned up.
- - No more wordsize parameter since PARITY takes care of all cases
- - Function keys can now call scripts
- - Double shift keys are now handled correctly.
- - Version has been added to the title bar (for bug reports).
-
- v2.1 860915 DBW - new features / bug fixes
- - Now identifies as a VT100 (including the response to <esc>Z)
- - Cursor color now gets read in as hex (instead of decimal)
- - REPORTMOUSE taken out of definitions (not needed)
- - XON/XOFF now being handled by the device driver instead of me
- - Literal escape characters have been replaced with \033
- - At init time the user can now specify the input BUFFER size
- (typically between 512 and 2048 bytes) depending on baud rate
- - Script files are now case insensitive for commands
- - XMODEM now turns off the driver XON/XOFF during transfers
- - Graphic rendition now done by the OS instead of me.
- - Initialization files are now searched for in S: instead of C:
- - Forward GOTO bug fixed in the script package.
- - Keypad can now be used in both numeric and application mode
- - General purpose cleanup() routine added for all exits.
- - Utility menu added (sendbreak, hangup, change directory).
- NOTE: hangup is not implemented yet.
- - Full wild card support in file transfers (see vt100.doc).
- - Kermit cleaned up with better filename handling (from host).
- - Script now has CD (changed directory) and SB (send break) commands
- - Added Parity and Wordsize choices in VT100.H, VT100.INIT, menu
- and scripts. (Generates parity from a table).
- - Added 8th bit quoting in KERMIT when using 7 bit words (ODD or
- EVEN parity).
- - Break time can be set from VT100.H, VT100.INIT or a script file.
- - Transfer mode (image or CRLF) can now be set from a script file.
- - Control characters in escape sequences now act like a true VT100.
- - F10 now works from init files.
- - Right (or Left) AMIGA with period (".") sends a BREAK to the host
- from the keyboard.
- - XMODEM status kept down to one line for a file transfer.
-
- v2.0 860823 DBW - Major rewrite:
- - Emulator now compiles under either MANX or LATTICE by defining
- the appropriate compiler type in VT100.H.
- - Sped up code to an effective baud rate of (about) 8k. This means
- that clear text at 4800 baud should be no problem.
- - Added XON/XOFF generation so that characters should not get lost
- any more at 9600 baud (when receiving clear text).
- - Got rid of all command line switches and environment variables.
- Instead upon invocation the program searches first for any file
- named on the command line, then looks for VT100.INIT in the
- current directory and finally searches for C:VT100.INIT.
- All parameters can be set in the init file, and a sample VT100.INIT
- is provided in VT100.DOC that shows all possible options.
- - All parameters that are set by VT100.INIT are defined in VT100.H
- (variables starting with "p_"). This allows you to compile your
- own defaults into the code.
- - You can now set the number of lines (for all you EMACS freaks :-).
- On an interlaced screen this gives you upto a 48 line terminal.
- - WORKBENCH colors are NEVER touched.
- - In an attempt to keep the size down, the color palette menu item
- has been removed (current). Code is about 36K in size with a
- run time image (using workbench screen) of about 88k.
- - Many bugs fixed including reverse scrolling with descenders,
- reverse video at end of line, clearing with scrolling regions,
- ... and 20 or more others.
- - File capture now no longer sends the filename to the host.
- - BOLD (<esc>[1m) has now been added by using an additional color
- when you specify a depth of 2 (instead of 1) bitplane.
- - UNDERLINE (<esc>[4m) has now been added.
- - The handling of remote (host) escape sequences has been completly
- re-written (thanks to Dawn Banks for all the work).
- - Function keys (and shifted function keys) can now be bound to
- arbitrary strings (Jim Ravan gets his macros). See VT100.DOC
- for details.
- - Cursor has no been reduced to the size of a normal character for
- easier readability.
- - XMODEM has been improved (by Steve Drew) to use a timer device
- (for timeouts) and to abort immediately if the user types <ESC>.
- - KERMIT has been completely re-written and appears to work fine,
- thanks to the efforts of Steve Drew.
- - New menu item allows script file support. Module written by
- Steve Drew. See VT100.DOC for details.
-
- Known problems:
- ---------------
- none
-
- Suggestions/bug fixes not implemented (as of yet):
- --------------------------------------------------
- - Custom screen should use a borderless backdrop window
- - Quit from keyboard should be supported (for above)
- - Automatic maximum sizing of window should happen
- - Screen should be resizable
- - AT TIME should be implemented in scripts (besides DELAY)
- - Kermit should create sub directories (when necessary)
- - Use a disk font for graphic character set
- - Allow the mouse to be sent to the host (for various EMACSs)
- - Kermit VM/CMS (IBM) protocol support (it works for me, how about
- you?)
- - Allow the user to use a keymap different from the default one.
- - Allow use of an "external" transfer protocol.
- - Allow use of other than 8-point fonts.
-
- Installation:
- -------------
- The files in this archive may be extracted by the bourne shell
- (/bin/sh) or the shar program using the "unshar switch (-u)",
- contact me if you need a copy of this version of shar.
-
- REMEMBER: Set the correct compiler definition in VT100.H
-
- Files:
- ------
- README - this file
- vt100.doc - documentation for the terminal emulator
- makefile - make file for the emulator (under MANX AZTEC-C)
- vt100.h - include file used by all other modules
- window.c - manager for window and keyboard
- vt100.c - main module, handles menus
- remote.c - handle remote characters (vt100 emulation)
- kermit.c - kermit protocol (to transfer text files on VMS
- select the CRLF option on the transfer mode menu,
- otherwise use image mode).
- init.c - startup code
- xmodem.c - xmodem protocol that understands AMIGA binary and
- text file formats (automatically).
- script.c - script control package
- expand.c - filename expansion (wildcards) and dir setting
-
- Contact:
- --------
- Please send bugs/comments/suggestions/praise for V2.8 to:
-
- Tony Sumrall at USENET: acs@amdahl.com
-